﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Navigation;

namespace Gica
{
    public partial class ABMTipoMaquinaria : Page
    {
        private string strModo;
        private string m_strCodigo;

        public ABMTipoMaquinaria()
        {
            InitializeComponent();
            cnvTipoMaquinaria.Visibility = Visibility.Collapsed;
        }

        // Se ejecuta cuando el usuario navega a esta página.
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            TraerTodos();
        }

        private void btnBuscar_Click(object sender, RoutedEventArgs e)
        {
            Traer();
        }

        private void WsTipoMaquinariaClient_TipoMaquinariaTraerTodosCompletedEventArgs(object sender, RefWsTipoMaquinariaTraerTodos.TraerTodosCompletedEventArgs e)
        {
            dgrTipoMaquinaria.ItemsSource = e.Result;
        }

        private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            btnBuscar_Click(null, null);
        }

        private void btnAgregar_Click(object sender, RoutedEventArgs e)
        {
            Deshabilitar();
            strModo = "Agregar";
        }

        private void btnAceptar_Click(object sender, RoutedEventArgs e)
        {
            Habilitar();
            if (strModo == "Agregar")
            {
                AgregarTipoMaquinaria();
            }
            else
            {
                ModificarTipoMaquinaria();
            }
            btnBuscar_Click(sender, e);

        }

        private void Deshabilitar()
        {
            cnvTipoMaquinaria.Visibility = Visibility.Visible;
            btnModificar.IsEnabled = false;
            btnQuitar.IsEnabled = false;
            btnAgregar.IsEnabled = false;
            btnBuscar.IsEnabled = false;

        }

        private void Habilitar()
        {
            btnModificar.IsEnabled = true;
            btnQuitar.IsEnabled = true;
            btnBuscar.IsEnabled = true;
            btnAgregar.IsEnabled = true;
            txtNombreBuscar.IsEnabled = true;
            cnvTipoMaquinaria.Visibility = Visibility.Collapsed;
        }

        private void AgregarTipoMaquinaria()
        {
            RefWsTipoMaquinariaInsertar.WsTipoMaquinariaInsertarClient objRf = new RefWsTipoMaquinariaInsertar.WsTipoMaquinariaInsertarClient();
            objRf.InsertarAsync(txtNombre.Text, txtDescripcion.Text);

        }

        private void ModificarTipoMaquinaria()
        {
            RefWsTipoMaquinariaModificar.WsTipoMaquinariaModificarClient objRf = new RefWsTipoMaquinariaModificar.WsTipoMaquinariaModificarClient();
            objRf.ModificarAsync(int.Parse(m_strCodigo), txtNombre.Text, txtDescripcion.Text);
        }

        private void EliminarTipoMaquinaria()
        {
            RefWsTipoMaquinariaEliminar.WsTipoMaquinariaEliminarClient objRf = new RefWsTipoMaquinariaEliminar.WsTipoMaquinariaEliminarClient();
            objRf.EliminarAsync(int.Parse(m_strCodigo));
        }

        private void btnModificar_Click(object sender, RoutedEventArgs e)
        {
            if (m_strCodigo != null)
            {
                Deshabilitar();
                strModo = "Modificar";
            }
        }

        private void dgrTipoMaquinaria_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (dgrTipoMaquinaria.SelectedItem != null)
            {
                m_strCodigo = ((TextBlock)dgrTipoMaquinaria.Columns[0].GetCellContent(dgrTipoMaquinaria.SelectedItem)).Text;
                txtNombre.Text = ((TextBlock)dgrTipoMaquinaria.Columns[1].GetCellContent(dgrTipoMaquinaria.SelectedItem)).Text;
                txtDescripcion.Text = ((TextBlock)dgrTipoMaquinaria.Columns[2].GetCellContent(dgrTipoMaquinaria.SelectedItem)).Text;
            }

        }

        private void btnQuitar_Click(object sender, RoutedEventArgs e)
        {
            if (dgrTipoMaquinaria.SelectedItem != null)
            {
                m_strCodigo = ((TextBlock)dgrTipoMaquinaria.Columns[0].GetCellContent(dgrTipoMaquinaria.SelectedItem)).Text;
                EliminarTipoMaquinaria();
                Traer();
            }
        }

        private void btnCancelar_Click(object sender, RoutedEventArgs e)
        {
            Habilitar();
        }

        private void TraerTodos()
        {
            btnBuscar_Click(null, null);
        }

        private void Traer()
        {
            RefWsTipoMaquinariaTraerTodos.WsTipoMaquinariaTraerTodosClient objRf = new RefWsTipoMaquinariaTraerTodos.WsTipoMaquinariaTraerTodosClient();
            objRf.TraerTodosCompleted += new EventHandler<RefWsTipoMaquinariaTraerTodos.TraerTodosCompletedEventArgs>(WsTipoMaquinariaClient_TipoMaquinariaTraerTodosCompletedEventArgs);
            objRf.TraerTodosAsync(txtNombreBuscar.Text);
        }

    }
}
